import { parse } from 'babylon'
import traverse from 'babel-traverse'
import generator from 'babel-generator'

const code = 'function square(n) {return n * n;}'; // 原始 code

const ast = parse(code) // 转换为 ast

traverse(ast, { // ast 处理
  // enter(path) {
  //   if (path.node.name === 'n' && path.node.type === 'Identifier') {
  //     path.node.name = 'x'
  //   }
  // }
  Identifier(path) {
    if (path.node.name === 'n') {
      path.node.name = 'x'
    }
  }
})

const newCode = generator(ast, {}, code).code // 将处理后的 ast 转换为新的 code
console.log(newCode)